package com.lvy.hczn.front.system.domain.business;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.lvy.hczn.front.system.domain.business.dto.CartonDto;
import com.lvy.hczn.front.common.annotation.Excel;
import com.lvy.hczn.front.system.domain.business.dto.TransferParcelDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.lvy.hczn.front.common.core.domain.BaseModel;

/**
 * 调拨单对象 transfer_order
 *
 * @author ruoyi
 * @date 2023-08-16
 */
@Data
@TableName("transfer_order")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "调拨单")
public class TransferOrder extends BaseModel<TransferOrder> {

    /**
     * 调拨单号
     */
    @Excel(name = "调拨单号")
    @ApiModelProperty(value = "调拨单号")
    private String transferCode;

    @Excel(name = "执行调拨分拣的仓库")
    @ApiModelProperty(value = "执行调拨分拣的仓库")
    private String associationRepId;

    /**
     * 任务单号
     */
    @Excel(name = "任务单号")
    @ApiModelProperty(value = "任务单号")
    private String taskCode;

    /**
     * 状态:0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成
     */
    @Excel(name = "状态:0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    @ApiModelProperty(value = "状态:0:草稿,1:待分拣,2:待出库,3:调拨中,4:已入库，5、分拣中；6、分拣完成")
    private Integer status;

    /**
     * 起始/调出仓编码
     */
    @Excel(name = "起始/调出仓编码")
    @ApiModelProperty(value = "起始/调出仓编码")
    private String startReqId;

    /**
     * 目的/调入仓编码
     */
    @Excel(name = "目的/调入仓编码")
    @ApiModelProperty(value = "目的/调入仓编码")
    private String arriveReqId;

    /**
     * 商品种类数量
     */
    @Excel(name = "商品种类数量")
    @ApiModelProperty(value = "商品种类数量")
    private Integer goodTypeNum;

    /**
     * 总调拨数量-销售单位
     */
    @Excel(name = "总调拨数量(销售单位)")
    @ApiModelProperty(value = "总调拨数量(销售单位)")
    private Integer transferSaleNum;

    /**
     * 总调拨数量-调拨单位
     */
    @Excel(name = "总调拨数量(调拨单位)")
    @ApiModelProperty(value = "总调拨数量(调拨单位)")
    private Integer transferTfNum;

    /**
     * 总调拨箱数
     */
    @Excel(name = "总调拨箱数")
    @ApiModelProperty(value = "总调拨箱数")
    private Integer transferCartonNum;

    /**
     * 总调拨重量
     */
    @Excel(name = "总调拨重量")
    @ApiModelProperty(value = "总调拨重量")
    private BigDecimal transferWeight;

    @ApiModelProperty(value = "分拣出入口")
    private String sortCode;

    @ApiModelProperty(value = "配送商id")
    private String enterpriseId;

    /**
     * 总调拨体积
     */
    @Excel(name = "总调拨体积")
    @ApiModelProperty(value = "总调拨体积")
    private BigDecimal transferVolume;

    @TableField(exist = false)
    private List<TransferOrderDetail> detailList;

    @ApiModelProperty(value = "包裹调拨信息")
    @TableField(exist = false)
    private List<TransferParcelDto> parcelList;

    @ApiModelProperty(value = "包裹调拨信息")
    @TableField(exist = false)
    private List<CartonDto> cartonList;
}
